“Cloud computing” generally refers to computing that occurs in environments with dynamically scalable and often virtualized resources, which typically include networks that remotely provide services to client devices that interact with the remote services. For example, cloud computing environments often employ the concept of virtualization as a preferred paradigm for hosting workloads on any appropriate hardware. The cloud computing model has become increasingly viable for many enterprises for various reasons, including that the cloud infrastructure may permit information technology resources to be treated as utilities that can be automatically provisioned on demand, while also limiting the cost of services to actual resource consumption. Moreover, consumers of resources provided in cloud computing environments can leverage technologies that might otherwise be unavailable. Thus, as cloud computing and cloud storage become more pervasive, many enterprises will find that moving data center to cloud providers can yield economies of scale, among other advantages.
However, while much of the information technology industry moves toward cloud computing and virtualization environments, existing systems tend to fall short in adequately addressing concerns relating to managing or controlling workloads and storage in such environments. For example, cloud computing environments are generally designed to support generic business practices, meaning that individuals and organizations typically lack the ability to change many aspects of the platform. Moreover, concerns regarding performance, latency, reliability, and security present significant challenges, as outages and downtime can lead to lost business opportunities and decreased productivity, while the generic platform may present governance, risk, and compliance concerns. In other words, once organizations deploy workloads beyond the boundaries of their data centers, lack of visibility into the computing environment may result in significant management problems.
While these types of problems tend to be pervasive in cloud computing and virtualization environments due to the lack of transparency, existing systems for managing and controlling workloads that are physically deployed and/or locally deployed in home data centers tend to suffer from many similar problems. In particular, information technology has traditionally been managed in silos of automation, which are often disconnected from one another. For example, help desk systems typically involve a customer submitting a trouble ticket to a remedy system, with a human operator then using various tools to address the problem and close the ticket, while monitoring systems that watch the infrastructure to remediate problems may remain isolated from the interaction between the customer and the help desk despite such interaction being relevant to the monitoring system's function.
As such, because existing systems for managing infrastructure workloads operate within distinct silos that typically do not communicate with one another, context that has been exchanged between two entities can often be lost when the workload moves to the next step in the chain. When issues surrounding workload management are considered in the context of business objectives, wherein information technology processes and business issues collectively drive transitions from one silo to another, modern business tends to move at a speed that outpaces information technology's ability to serve business needs. Although emerging trends in virtualization, cloud computing, appliances, and other models for delivering services have the potential to allow information technology to catch up with the speed of business, many businesses lack the knowledge needed to intelligently implement these new technologies.
For example, emerging service delivery models often lead to deployed services being composed and aggregated in new and unexpected ways. In particular, rather than designing and modeling systems from the ground up, new functionality is often generated on-the-fly with complex building blocks that tend to include various services and applications that have traditionally been isolated and stand-alone. As such, even though many emerging service delivery models provide administrators and users with a wider range of information technology choices than have ever before been available, the diversity in technology often compounds business problems and increases the demand for an agile infrastructure. Thus, despite the advantages and promise that new service delivery models can offer businesses, existing systems tend to fall short in providing information technology tools that can inform businesses on how to intelligently implement an information technology infrastructure in a manner that best leverage available technology to suit the particular needs of a business.
Furthermore, in many instances, a client device may need to run applications or services that cannot run on a current desktop associated with the client device. For example, if a client device runs an operating system that lacks support for a particular application, adding support for the application would require the client device to connect to another machine that can run the application (e.g., Linux operating systems often lack support for Microsoft Word, whereby a client device that runs a Linux operating system would have to connect to another machine that can run Microsoft Word in order to provide support for Microsoft Word on the client device). In other contexts, the client device may further need access to the entire operating system that supports the desired application (e.g., to view and debug log files generated from running the application on a certain Linux distribution, version of Microsoft Windows, etc.). Further still, applications currently running on the client device may lack support for a document having a certain file type, whereby to open the document, the client device would then have to install new application that supports the file type or convert the document to a supported file type.
Although emerging service delivery models offers various ways to interact with information technology that may be new or otherwise unsupported on a particular client device, existing desktop interfaces typically have limited (if any) support for the diverse technologies typically employed in these emerging service delivery models. Moreover, adding support for particular operating systems, applications, file types, or other services can often be tedious (e.g., a user may not want to perform the work needed to install new applications to support file types that will only be used rarely or occasionally, may not want to install new applications on the desktop, etc.). As such, cloud computing environments may be used to provide dynamically allocated resources that can support certain operating systems or applications, but existing systems for managing services in virtualized and cloud data centers tend to be complex and difficult to manage. In particular, existing systems for managing virtualized and cloud data centers tend to require substantial and specific knowledge in order to suitably locate, configure, and interact with services provided therein. For example, certain users may have multiple machines that interact with common or otherwise shared data, but configuring existing systems to make the shared data available to the multiple machines tends to be cumbersome (e.g., policies may restrict making sensitive data available in public clouds or outside corporate firewalls). Thus, although virtualized and cloud data centers can substantial flexibility in decoupling applications and services from underlying physical hardware, client devices tend to lack simple interfaces that can be used to create and interact with such applications and services on-demand.